#include "vx_cell.h"

vx_cell::vx_cell(QString avatarPath, QString name, QString message, QString time,QString friendID, QWidget *parent)
    : QWidget(parent)
{
    //去除标题栏
    this->setWindowFlag(Qt::FramelessWindowHint);
    this->setObjectName("vx_cell");

    //设置主布局
    QHBoxLayout *mainLayout=new QHBoxLayout(this);
    mainLayout->setContentsMargins(10,5,10,5);//控件之间的边距
    mainLayout->setSpacing(10);

    //头像
    avatarLabel=new QLabel(this);
    QPixmap avatarPixmap(":/new/prefix1/img/YY.jpg");
    avatarLabel->setPixmap(avatarPixmap.scaled(64,64,Qt::KeepAspectRatio,Qt::SmoothTransformation));
    avatarLabel->setFixedSize(64,64);

    //中间部分（昵称+回复时间+消息）
    QVBoxLayout *midLayout=new QVBoxLayout(this);
    QHBoxLayout *midHLayout=new QHBoxLayout(this);
    nameLabel=new QLabel(name,this);
    nameLabel->setStyleSheet("font-size:24px;color:#181818;");
     nameLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); // 允许 label 在布局中扩展
    // 使用 QFontMetrics 来计算文本宽度并处理省略号
    QFontMetrics fontMetrics(nameLabel->font());
    QString elidedText = fontMetrics.elidedText(name, Qt::ElideRight, 140); // 140 为最大宽度
    nameLabel->setText(elidedText); // 将处理过的文本设置到 QLabel

    //右侧时间
    timeLabel=new QLabel(time,this);
    timeLabel->setStyleSheet("font-size: 20px; color:#c4c3c2;");
    timeLabel->setFixedWidth(80);

    midHLayout->addWidget(nameLabel,1);
    midHLayout->addWidget(timeLabel,0);

    //消息
    messageLabel=new QLabel(message,this);
    messageLabel->setStyleSheet("font-size:20px;color:#9b9b9b;");
    QFontMetrics messageFontMetrics(messageLabel->font());
    int maxWidth =240;
    QString elidedMessage = messageFontMetrics.elidedText(message, Qt::ElideRight, maxWidth);
    messageLabel->setText(elidedMessage); // 将处理过的文本设置到 QLabel

    midLayout->addLayout(midHLayout);
    midLayout->addWidget(messageLabel);

    //将控件添加到主布局
    mainLayout->addWidget(avatarLabel);
    mainLayout->addLayout(midLayout);
    setLayout(mainLayout);



}

vx_cell::~vx_cell()
{

}

void vx_cell::mousePressEvent(QMouseEvent *event)
{
    if (event->button() == Qt::LeftButton) {
        emit cellClicked(friendId); // 发射信号，传递好友ID
    }
    QWidget::mousePressEvent(event); // 调用基类的事件处理函数
}
